using System;
using Volo.Abp.Application.Dtos;
using UserManagementService.Enums;

namespace UserManagementService.DTOs;
/// <summary>
/// 搜索用户DTO
/// </summary>
public class SearchUsersDto : PagedAndSortedResultRequestDto
{
    /// <summary>
    /// 搜索关键字
    /// </summary>
    public string? Keyword { get; set; }

    /// <summary>
    /// 用户状态
    /// </summary>
    public UserStatus? Status { get; set; }

    /// <summary>
    /// 是否只返回活跃用户
    /// </summary>
    public bool? IsActive { get; set; }

    /// <summary>
    /// 角色名称
    /// </summary>
    public string? RoleName { get; set; }

    /// <summary>
    /// 组织ID
    /// </summary>
    public Guid? OrganizationId { get; set; }

    /// <summary>
    /// 创建时间开始
    /// </summary>
    public DateTime? CreationTimeStart { get; set; }

    /// <summary>
    /// 创建时间结束
    /// </summary>
    public DateTime? CreationTimeEnd { get; set; }

    /// <summary>
    /// 最后修改时间开始
    /// </summary>
    public DateTime? LastModificationTimeStart { get; set; }

    /// <summary>
    /// 最后修改时间结束
    /// </summary>
    public DateTime? LastModificationTimeEnd { get; set; }

    /// <summary>
    /// 邮箱是否已确认
    /// </summary>
    public bool? EmailConfirmed { get; set; }

    /// <summary>
    /// 手机号是否已确认
    /// </summary>
    public bool? PhoneNumberConfirmed { get; set; }

    /// <summary>
    /// 是否启用双因子认证
    /// </summary>
    public bool? TwoFactorEnabled { get; set; }

    /// <summary>
    /// 是否被锁定
    /// </summary>
    public bool? IsLockedOut { get; set; }
}